/**
 * 新建用户
 */
var addOrUpdateUserWin = function(userId, title) {
	var addOrUpdateForm = new Ext.form.FormPanel({
		id : 'addOrUpdateForm',
		frame : true,
		buttonAlign : 'center',
		labelAlign : 'right',
		fileUpload : true,
		monitorValid : true,
		bodyBorder : false,
		buttons : [{
					text : "保存",
					width : 80,
					id : 'userSave',
					formBind : true,
					handler : function() {
						insertOrUpdateUser();
					}
				}, {
					text : "取消",
					width : 80,
					handler : function() {
						addOrUpateUserWin.close();
					}
				}],
		items : [{
			xtype : "panel",
			baseCls : "x-plain",
			layout : "column",
			border : false,
			items : [{
				// columnWidth : .5,
				labelWidth : 60,
				baseCls : "x-plain",
				layout : 'form',
				width : 350,
				border : false,
				items : [{
							xtype : "hidden",
							id : "userForm_id",
							name : 'id'
						}, {
							baseCls : "x-plain",
							xtype : 'textfield',
							anchor : '100%',
							fieldLabel : "<span style='color:#F00'>*</span>用户姓名",
							name : "userName",
							allowBlank : false,
							blankText : '用户姓名不能为空'
						}, {
							id : 'userForm_userType',
							xtype : 'dataDictionaryCmb',
							anchor : '100%',
							fieldLabel : "<span style='color:#F00'>*</span>用户类型",
							hiddenName : "userType",
							editable : false,
							autoLoad : false,
							existall : false,
							defaultFirstRow : 1,
							allowBlank : false,
							dictionaryType : PmsUtil.user_type
						}, {
							xtype : 'numberfield',
							anchor : '100%',
							fieldLabel : "<span style='color:#F00'>*</span>手机号",
							name : "mobileNo",
							id : 'mobileNo',
							allowBlank : false,
							blankText : '手机号不能为空',
							allowDecimals : false,// 禁用小数
							allowNegative : false,// 禁用负数
							maxLength : 11,
							listeners : {
								'blur' : function(f) {
									var mobileNo = Ext.getCmp("mobileNo")
											.getValue();
									validMobileNoIsExist(mobileNo);
								}
							}
						}, {
							id : 'userForm_sex',
							xtype : 'localcommonbox',
							anchor : '100%',
							fieldLabel : "<span style='color:#F00'>*</span>性别",
							allowBlank : false,
							editable : false,
							hiddenName : 'sex',
							loaclarr : [['0', '男'], ['1', '女']]
						}, {
							xtype : 'textfield',
							anchor : '100%',
							fieldLabel : '邮箱',
							name : "email"
						}, {
							id : 'userForm_birthday',
							xtype : "datefield",
							name : "birthday",
							fieldLabel : "出生日期",
							editable : true,
							emptyText : null,
							format : "Y-m-d",// 日期的格式
							width : 195,
							editable : false,
							maxValue : new Date()
						}, {
							id : 'userForm_upload',
							fieldLabel : "<span style='color:#F00'>*</span>头像",
							name : 'upload',
							xtype : 'fileuploadfield',
							buttonText : '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;浏览&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;',
							blankText : "请选择您要导入的图片",
							width : 280,
							border : false,
							listeners : {
								'fileselected' : function(field, value) {
									var uploadImage = Ext
											.getCmp("userForm_upload");
									var img_reg = /\.([jJ][pP][gG]){1}$|\.([jJ][pP][eE][gG]){1}$|\.([gG][iI][fF]){1}$|\.([pP][nN][gG]){1}$|\.([bB][mM][pP]){1}$/;
									// 得到选择的图片路径
									var url = 'file://'
											+ uploadImage.getValue();
									if (img_reg.test(url)) {
										var imageShow_box = Ext
												.getCmp("userForm_image"); // 预览的图片框对象
										if (Ext.isIE) {
											var imageShow_box_dom = imageShow_box
													.getEl().dom;
											imageShow_box_dom.src = Ext.BLANK_IMAGE_URL;// 覆盖原来的图片
											imageShow_box_dom.filters
													.item("DXImageTransform.Microsoft.AlphaImageLoader").src = url;
										}// 支持FF
										else {
											var f = document
													.getElementById("userForm_upload-file").files[0];
											Ext.get('userForm_image').dom.src = window.URL
													.createObjectURL(f);
										}
									} else {
										Ext.MessageBox.show({
													title : "错误提示",
													msg : "必须为图片格式",
													buttons : Ext.MessageBox.OK,
													icon : Ext.MessageBox.ERROR
												});
									}

								}
							}
						}]
			}, {
				layout : "form",
				style : "padding:0px 0px 0 0px",
				// 顺序是 上 右 下 左，也就是顺时针的方向
				// bodyStyle:"padding-top: 15px; padding-left:10px;",
				labelWidth : 45,
				baseCls : "x-plain",
				items : [{
					xtype : 'box',
					fieldLabel : "头像",
					baseCls : "x-plain",
					id : 'userForm_image',
					autoEl : {
						width : 200,
						height : 200,
						tag : 'input',
						type : 'image',
						src : __ctxPath + "/images/monmonde -user.png",
						style : 'filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale);width:160px;height:160px;text-align:center;',
						complete : 'off',
						onclick : 'clickHandler()'
					}
				}]
			}]
		}],
		reader : new Ext.data.JsonReader({
					success : 'success',
					root : 'data'
				}, [{
							name : 'id'
						}, {
							name : 'userName'
						}, {
							name : 'mobileNo'
						}, {
							name : 'email'
						}, {
							name : 'sex'
						}, {
							name : 'birthday'
						}, {
							name : 'createdDate'
						}, {
							name : 'createdName'
						}, {
							name : 'updatedDate'
						}, {
							name : 'updatedName'
						}, {
							name : 'headPic'
						}, {
							name : 'userType'
						}])

	});

	var addOrUpateUserWin = new Ext.Window({
				id : 'addOrUpateUserWin',
				width : 600,
				title : title,
				height : 270,
				layout : "form",
				modal : true,// 遮罩效果，弹出此window，背景为灰色不可操作
				plain : true,
				draggable : false, // 不可拖动
				resizable : false, // 不可调整
				defaultType : "textfield",
				labelWidth : 60,
				bodyStyle : "padding-top: 0px; padding-left:0px;",
				items : [addOrUpdateForm],
				border : false,
				listeners : {
					'show' : function() {
						selectUserById(userId);
					},
					'beforeshow' : function() {
						addOrUpateUserWin.center();
					}
				}
			});
	return addOrUpateUserWin;
}

function validMobileNoIsExist(mobileNo) {
	Ext.Ajax.request({
				url : __ctxPath + "/userManager/valideMobileIsExist",
				params : {
					mobileNo : mobileNo
				},
				method : 'POST',
				success : function(response, options) {
					var jsonData = Ext.util.JSON
							.decode(options.response.responseText);
					Ext.MessageBox.show({
								title : "信息提示",
								msg : jsonData.data,
								buttons : Ext.MessageBox.OK,
								icon : Ext.MessageBox.INFO
							});
				},
				failure : function(response, options) {
					var jsonData = Ext.util.JSON
							.decode(options.response.responseText);
					Ext.MessageBox.show({
								title : "错误提示",
								msg : jsonData.data,
								buttons : Ext.MessageBox.OK,
								icon : Ext.MessageBox.ERROR
							});
				}
			});
}

/**
 * 添加或修改用户
 */
function insertOrUpdateUser() {
	var userId = Ext.getCmp("userForm_id").getValue();
	var uploadImage = Ext.getCmp("userForm_upload").getValue();
	var userForm = Ext.getCmp("addOrUpdateForm");
	if (userId == '' && uploadImage == '') {
		Ext.Msg.show({
					title : '提示信息',
					msg : '用户头像不能为空!',
					buttons : Ext.MessageBox.OK,
					icon : Ext.MessageBox.WARNING
				});
		return;
	}
	if (userForm.getForm().isValid()) {
		Ext.Msg.confirm("提示框", "确认要保存用户信息吗?", function(button) {
					if (button == "yes") {
						userForm.getForm().submit({
							url : __ctxPath + "/userManager/addOrUpdateUser",
							method : "post",
							waitTitle : "请稍候",
							waitMsg : "正在提交表单，请稍候......",
							success : function(response, options) {
								var jsonData = Ext.util.JSON
										.decode(options.response.responseText);
								Ext.MessageBox.show({
											title : "信息提示",
											msg : jsonData.data,
											buttons : Ext.MessageBox.OK,
											icon : Ext.MessageBox.INFO
										});
								Ext.getCmp("addOrUpateUserWin").close();
								var gridPanel = Ext.getCmp('userManagerGrid');
								if (typeof(gridPanel) != 'undefined') {
									gridPanel.store.reload();
								}
							},
							failure : function(response, options) {
								var jsonData = Ext.util.JSON
										.decode(options.response.responseText);
								Ext.MessageBox.show({
											title : "错误提示",
											msg : jsonData.data,
											buttons : Ext.MessageBox.OK,
											icon : Ext.MessageBox.ERROR
										});
							}
						});
					}
				});

	}
}

/**
 * 根据userId查找用户
 * 
 * @param {}
 *            userId
 */
function selectUserById(userId) {
	if (userId != null && userId != "undefined") {
		Ext.getCmp("addOrUpdateForm").getForm().load({
			deferredRender : false,
			url : __ctxPath + "/userManager/selectUserById",
			params : {
				userId : userId
			},
			waitTitle : "请稍候",
			waitMsg : "正在载入数据...",
			root : "data",
			success : function(response, options) {
				var data = options.result.data;
				// 设置用户性别
				if (data.sex) {
					var sex = Ext.getCmp('userForm_sex');
					sex.setValue(data.sex);
					sex.setRawValue(PmsUtil.UserSex(data.sex));
				}

				// 设置出生日期
				if (data.birthday) {
					var birthday = Ext.getCmp('userForm_birthday');
					birthday.setRawValue(Ext.util.Format.substr(data.birthday,
							0, 10));
				}

				// 设置头像
				if (data.headPic) {
					Ext.getCmp('userForm_image').getEl().dom.src = data.headPic;
				}

				var userType = Ext.getCmp('userForm_userType');
				userType.setValue(data.userType);
				userType.setRawValue(PmsUtil.UserType(data.userType));

			}
		});
	}
}